package com.sk.sqd;

import com.sk.sqd.element.BaseElement;
import com.sk.sqd.element.ElementA;
import com.sk.sqd.element.ElementB;
import com.sk.sqd.visitor.ConcreteVisitor;

import java.util.ArrayList;

public class VisitorTest {

    public static void main(String[] args) {
        // 先整两个元素
        ElementA elementA = ElementA.builder().name("张三").age(33).job("律师").build();
        ElementB elementB = ElementB.builder().name("李四").age(22).job("学生").build();
        ArrayList<BaseElement> elementList = new ArrayList<>();
        elementList.add(elementA);
        elementList.add(elementB);

        // 元素接收访问者访问对象
        elementList.forEach(ele -> {
            ConcreteVisitor visitor = new ConcreteVisitor();
            ele.accept(visitor);
        });
    }

}
